The present invention relates to loading and unloading of applications and/or preferences onto a data processing system in general and in particular to the loading and unloading of applications and/or preferences onto a pervasive computing device with limited storage capabilities.
With the increasing mobility of today""s society, the demand for mobile computing capabilities has also increased. Many workers and professionals are downsizing their laptop computers to smaller palm-top or hand-held devices, such as personal digital assistants (PDAs). In addition, many people now utilize cellular telephones to access the Internet and to perform various other computing functions. Computing devices including, but not limited to, PDAs, cellular telephones, and computing devices utilized within appliances and automobiles are often collectively referred to as xe2x80x9cpervasivexe2x80x9d computing devices. Many hand-held computing devices utilize the Microsoft(copyright) Windows CE, 3Com Palm Computing(copyright), and Symbion Epoc platforms as well as web browsers such as HandWeb from SmartCode, Inc. and the Pocket Internet Explorer from Microsoft, Inc. As used herein, the term xe2x80x9cpervasive computing devicexe2x80x9d refers to a data processing system which may connect to another data processing system and is intended to include PDAs, laptop and portable computers, pen-based portable computers, wireless telephones, smart phones, screenphones, copiers and other office equipment, appliances, factory controllers, etc.
Unfortunately, as the size of pervasive computing devices has decreased, typically, the capabilities of the devices for stand alone operation have also decreased. Such devices generally have reduced amounts of memory and little or no permanent storage capabilities. As a result, pervasive computing devices may have limited capabilities for maintaining large numbers of applications loaded on the pervasive computing device and may be limited to only a subset of the applications available for a device. Furthermore, the applications which a user may want to utilize on a pervasive computing device may change based on the environment or use to which the device is to be put. Thus, it may be necessary to unload certain applications from a pervasive computing device and load other applications onto a pervasive computing device depending on the desires of a user of the device.
In addition to changes in applications which are loaded on a pervasive computing device, it may also be beneficial to change preferences or data associated with applications as the use or environment of the pervasive computing device changes. Thus, for example, a user may have a mapping application which displays a map based on a user preference. When the user utilizes the pervasive computing device in a new location, the user may want to change the displayed map to display a map of the new location.
Conventionally, in order to change the applications, preferences or data of a pervasive computing device, a user would select each application to be loaded individually and set each preference individually, typically while an application is running on the pervasive computing device, however, preferences may also be loaded when the device has access to a source of the applications and preferences. This individual selection of applications and/or preferences may be time consuming and may be error prone. For example, if a user fails to load an application which they need at a certain location they may not have the opportunity subsequently to load that application before it is needed. Thus, a need exists for improvements in control of information provided to pervasive computing devices.
Accordingly, it is an object of the present invention to provide methods, systems and computer program products which can automatically provide applications and/or preferences for a pervasive computing device without requiring a user to select each application and/or preference individually.
A further object of the present invention is to increase the likelihood that a user will have the application and/or preferences loaded in a pervasive computing device which are suitable for the location and/or environment in which the pervasive computing device will be used.
These and other objects can be provided, according to the present invention, by methods, systems and computer program products which control information provided to a pervasive computing device when the pervasive computing device synchronizes with a data processing system other than the pervasive computing device by defining at least one list of environments associated with the pervasive computing device and associating information items to be provided to the pervasive computing device by the data processing system with environments in the list of environments. User input is obtained at the pervasive computing device to select an environment from the list of environments and the data processing system notified of the selected environment upon synchronization of the pervasive computing device with the data processing system. The information items associated with the selected environment are then provided from the data processing system to the pervasive computing device responsive to notification of the selected environment.
By providing an environment list and associating applications with the environment list, a user may select information items such as applications and/or preferences to be loaded in a pervasive computing device without having to individually select the items. Furthermore, because the information items are associated with an environment such as an intended use or location of the pervasive computing device, the likelihood that a user will forget to load a critical application or data may be reduced.
In a further embodiment of the present invention, a user is associated with the pervasive computing device synchronizing with the data processing system and a list of permitted information items which may be provided to the pervasive computing device upon synchronization is defined for the user. The information items associated with the selected environment from the data processing system may then only be provided to the pervasive computing device responsive to notification of the selected environment if the information items are both associated with the selected environment and permitted for the user associated with the pervasive computing device.
In a still further embodiment of the present invention, information items to be provided to a pervasive computing device irrespective of the environment selected by a user are associated with all of the environments in the list of environments. The information items associated with each of the environments in the list of environments may then be provided from the data processing system to the pervasive computing device upon synchronization irrespective of the environment selected by the user.
Preferably, the information items include applications to be loaded on the pervasive computing device. In such a case, applications which are not associated with the selected environment may be unloaded from the pervasive computing device and applications associated with the selected environment loaded on the pervasive computing device.
In a still further embodiment of the present invention, user input may be obtained to select information items to be obtained from the data processing system. The selected information items may then be obtained from the data processing system when the pervasive computing device synchronizes with the data processing system.
Furthermore, a user may be associated with the pervasive computing device synchronizing with the data processing system and a list of permitted information items defined for the user which may be provided to the pervasive computing device upon synchronization. In such a case, information items which are both associated with the selected environment and permitted for the user associated with the pervasive computing device may be provided from the data processing system to the pervasive computing device responsive to notification of the selected environment. Also, the selected information items obtained from the data processing system when the pervasive computing device synchronizes with the data processing system may be obtained if the selected information items are permitted for the user associated with the pervasive computing device.
In yet another embodiment of the present invention, at least one list of environments associated with the pervasive computing device is defined as a hierarchy of environments associated with a plurality of environments. Then, information items to be provided to the pervasive computing device by the data processing system are associated with environments in the list of environments wherein environments in the hierarchy of environments inherit the associated information items of environments higher in the hierarchy.
In further embodiments of the present invention, the information items are applications and preferences. Furthermore, the environments may be locations and operating environments.
In still another embodiment of the present invention, the at least one list of environments associated with the pervasive computing device is defined at the data processing system and information items to be provided to the pervasive computing device by the data processing system associated with environments in the list of environments at the data processing system. Furthermore, at least one list of environments associated with the pervasive computing device corresponding to the at least one list of environments defined at the data processing system may also be defined at the pervasive computing device. Similarly, information items to be provided to the pervasive computing device by the data processing system may be associated with environments in the list of environments at the pervasive computing device. The information items associated with the at least one list of environments defined at the data processing system may then be reconciled with the information items associated with the at least one list of environments defined at the pervasive computing device to determine the information items to be provided by the data processing system and obtained by the pervasive computing device.
In a particular embodiment, this reconciliation may be provided by determining if the loading of an information item associated with the at least one list of environments defined at the data processing system has been overridden by the association of information items to be provided to the pervasive computing device by the data processing system with environments in the list of environments defined at the pervasive computing device.
In yet another embodiment of the present invention, applications and/or preferences to be loaded on to a pervasive computing device are determined by defining a list of environments, defining a default association of applications and/or preferences associated with each of the environments in the list of environments and defining a user specific association of applications and/or preferences associated with at least one of the environments in the list of environments. User input to select an environment from the list of environments is obtained. It is then determined if a user specific association has been defined for the selected environment. Any conflicts between the user specific association and the default association if a user specific association has been defined for the selected environment are resolved so as to provide a single association of applications and/or preferences associated with the selected environment and the applications and/or preferences from the single association of the applications and/or preferences associated with the selected environment loaded onto the pervasive computing device.
In an embodiment of the present invention where the list of environments is a hierarchical list of environments, children environments in the hierarchical list of environments inherit associations of applications and/or preferences from parent environments in the hierarchical list of environments. Furthermore, any conflicts between associations of applications and/or preferences in children environments with associations of applications and/or preferences in parent environments may be resolved by associations of applications and/or preferences in children environments overriding associations of applications and/or preferences in parent environments.
In a further embodiment, the resolution of any conflicts between the user specific association and the default association may be accomplished by overriding associations of applications and/or preferences of the default association with corresponding associations of applications and/or preferences of the user specific association.
In still another embodiment of the present invention, it may be determined if a first application and/or preference already loaded on the pervasive computing device is not identified in the single association. The first application and/or preference may then be unloaded from the pervasive computing device if the first application and/or preferences is not identified in the single association.
Furthermore, environments may, in one embodiment, be inherited based on user groups and child groups which may inherit environments and associated information elements from their parents.
While the invention has been described above primarily with respect to the method aspects of the invention, both systems and/or computer program products are also provided.